package com.ruoyi.file.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import lombok.Data;

/**
 * 批量获取预签名URL请求对象
 *
 * @author ruoyi
 */
@Data
@Schema(name = "BatchPresignedUrlRequest", description = "批量获取预签名URL请求对象")
public class BatchPresignedUrlRequest {

    /** 上传ID */
    @Schema(description = "上传ID")
    @NotBlank(message = "上传ID不能为空")
    @Size(max = 500, message = "上传ID长度不能超过500个字符")
    private String uploadId;

    /** 总分片数量 */
    @Schema(description = "总分片数量")
    @NotNull(message = "总分片数量不能为空")
    @Min(value = 1, message = "总分片数量至少为1")
    @Max(value = 10000, message = "总分片数量不能超过10000")
    private Integer totalParts;

    /** 存储配置ID(可选，不传则使用默认配置) */
    @Schema(description = "存储配置ID")
    private Long configId;

    /** 文件路径 */
    @Schema(description = "文件路径")
    @NotBlank(message = "文件路径不能为空")
    @Size(max = 500, message = "文件路径长度不能超过500个字符")
    private String filePath;
}
